给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。
输入格式:
输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。
输出格式:
在一行中按题目要求输出排序后的字符串。题目保证输出非空。
输入样例:
1
   | pcTclnGloRgLrtLhgljkLhGFauPewSKgt
   | 
 
输出样例:
思路
记录四种(大小写都算)字符的出现次数,然后用这些字符按顺序拼凑出GPLT即可,具体看代码
知识点:其实没什么,开拓下思维,可以看看switch的一种用法
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
   | #include <iostream>
  using namespace std;
  int main() {     int g, p, l, t;     g = p = l = t = 0;     string str;     cin >> str;     for(int i = 0; i < (int)str.size(); i++) {         switch(str[i]) {         case 'G':         case 'g':             g++;             break;         case 'P':         case 'p':             p++;             break;         case 'L':         case 'l':             l++;             break;         case 'T':         case 't':             t++;             break;         default:             break;         }     }     while(g + p + l + t > 0) {          
 
 
 
 
 
 
 
          if(g > 0) {             cout << "G";             g--;         }         if(p > 0) {             cout << "P";             p--;         }         if(l > 0) {             cout << "L";             l--;         }         if(t > 0) {             cout << "T";             t--;         }     }     cout << endl;     return 0; }
   |